1. Field of the Invention
This invention relates generally to computer systems for managing sequences of computer system events with respect to collections of data and, more particularly, to systems that can read a log of events and correlate the events with time.
2. Description of the Related Art
Many computer processes involve a sequence of events that are carried out with respect to a collection of data. For example, a file server system might service a plurality of users that request access to copies of data files. Responding to the requests for copies is seen by the system as a sequence of computer events. These responses must be managed so that requests are filled in a timely and efficient manner. Another example of managing a sequence of events is that of a data base manager, which might field search query requests concerning a data base from multiple users and return data fitting the query requests. The requests constitute a sequence of events that must be received and processed. Another computer process that involves a sequence of events would be a commercial order filling or banking system that receives orders or account changes that must be tended to in a transactional, or atomic work order fashion.
It frequently is important for such systems to keep track of the sequence of events in an activity log and then later consult the log to trace the events. This is useful, for example, in recovering from a system malfunction or equipment failure. It also is useful in permitting users to operate on a data base while collecting those events in an activity log to permit other users to periodically analyze the sequence of events without concern for continuing changes. Many such systems record the events in the log at a time interval that is relatively small, or granular, and is not denoted in an ordering that is of interest.
For example, in a file server system, requests for files might be recorded in the sequence in which they are received, interspersed with system responses to requests or other system/user events with respect to the files. It might be desirable to consult the activity log according to the order in which files were accessed. In a data base management system, updates to tables from one user might be recorded in the log interspersed with commit records associated with those updates and also with updates and commit records from other users. An update might be received before a prior update has been implemented, or committed. It might be necessary to review the updates in the order in which they were committed or it might be necessary to consult the log in the order of received update requests. In this way, the granularity of the event sequence in an activity log might not correlate with another meaningful time series ordering of the events.
Thus, although the events are received in a time sequence, they inherently have a different ordering that might be of interest. In this way, the granularity of the event sequence in the activity log might not correlate with another meaningful time series ordering of the events. Many processing systems do not permit meaningful time series data to be associated with the events recorded in the log and accessed by users. That is, the sequence of recorded events is not readily ordered according to a meaningful time series because the time series of interest is not present in the activity log or is not readily learned by a user.
The difficulty described above is readily illustrated with respect to data base management systems. Such systems receive updates to tables in a data base from many users and write the updates to an activity log. In a relational data base within a transaction oriented processing system, data base updates comprise a sequence of change operations including a first part of the transactional update, such as an account credit, and a second part of the transactional update, such as an account debit. Each transaction also includes a commit operation that indicates to a system process that the changes specified by the first and second change operations should be implemented, or carried out. This scheme ensures that transactional updates are either fully completed or not executed and is very important for maintaining integrity of systems.
It might be necessary to trace the updates. Also, it might be desirable to permit copies of subsets of the data base made at different points in time, referred to as snapshots, to be examined by multiple users all sharing the data base. It also might be desirable to permit users looking for specific information in the data base to examine the snapshots. In either case, multiple copies of data records facilitate concurrent use at many geographic locations. If changes to the data base are made after the time a copy was made, then users will be examining incorrect, out of date information. To ensure accurate information, it is necessary to trace the data base updates since the time a snapshot copy was initially made.
Unfortunately, the activity log might not be easily accessed by an end user, if at all, and the events in the activity log may be recorded on a very granular level. That is, the change operations are recorded in the activity log in the order in which they were received from users. To trace the changes and recreate the condition of the data base at various points in time, it is necessary to join up the change operations with the commit operations to synchronize the records in the activity log with the changes that actually were committed. Time series data must be associated with the sequence of changes as they are committed in the activity log, so the proper sequence of changes to the various snapshot copies can be made.
If a transaction-oriented data base management system uses synchronous replication, then each snapshot copy is readily associated with time series data, or system clock data, which provides the necessary time context. For many reasons, however, asynchronous replication is favored over synchronous replication. Asynchronous replication, for example, permits the data replication stages to overlap within a transaction and among different transactions, which can be more efficient than synchronous replication. Unfortunately, time series data is not readily available to the asynchronous processes.
Data base management systems generally assign each update a binary transaction sequence number that also is recorded in the log, but in an asynchronous process these sequence numbers do not incorporate time series data. Taking the time to write time series data with each event that is recorded would create noticeable delay for an updating transaction. Also, in many cases, the process that writes the activity log might not have access to time series data or for some other reason might not denote time sequence in the activity log. Thus, in practice, it can be very difficult to determine the correct location of the activity log at which to begin tracing. It would be advantageous to have knowledge of clock time associated with updates to a data base for faster update tracing without requiring excessive overhead. Moreover, it would be very difficult to provide this information within the existing data structures in the data base. It would be advantageous to provide time series data without requiring extensive modification of existing data base tables and structures.
Thus, although computing systems record events in an activity log, the granularity of the event sequence in the log might not correlate with another meaningful time series ordering of the events. In addition, it can be very difficult to provide useful time series data to be associated with the events recorded in the log and to be accessed by users. It generally is very difficult to provide such time series data without extensive modification of existing processing systems or existing data structures in such systems.
From the discussion above, it should be apparent that there is a need for a computer processing system that can correlate events in an activity log with time series data of interest and permit examination of the correlated events by multiple users. The present invention satisfies this need.